home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c26.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  19KB  |  778 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9.  
  10.  
  11. T0* r10command_arguments(void){
  12. if(fBC1command_arguments==0){
  13. T0* _arg=NULL;
  14. T2 _i=0;
  15. fBC1command_arguments=1;
  16. _i=se_argc;
  17. {T62*n=malloc(sizeof(*n));
  18. *n=M62;
  19. r62make(n,_i);
  20. oBC1command_arguments=(T0*)n;
  21. }
  22. while (!((_i)==(0))) {
  23. _i=(_i)-(1);
  24. _arg=((T0*)e2s(se_argv[_i]));
  25. /*[IRF3.5put*/((((T62*)oBC1command_arguments))->_storage/*0*/)[_i]=(_arg);
  26. /*]*/
  27. }
  28. }
  29. return oBC1command_arguments;}
  30.  
  31.  
  32. void r364c_define_for(T0* a1,T0* a2){
  33. T0* _rfargs=NULL;
  34. T0* _rfrt=NULL;
  35. T0* _rfct=NULL;
  36. _rfct=/*X51current_type*/((T0*)(((T324*)a2))->_current_type/*4*/);
  37. _rfrt=X51result_type(a2);
  38. _rfargs=X51arguments(a2);
  39. r28put_string((T28*)(oBC12echo),X54run_time_mark(_rfct));
  40. r28put_character((T28*)(oBC12echo),'\56');
  41. r28put_string((T28*)(oBC12echo),X83to_string(/*X51name*/((T0*)(((T324*)a2))->_name/*16*/)));
  42. r28put_character((T28*)(oBC12echo),'\n');
  43. /*[IRF3.3clear*/((((T7*)((T7*)(oBC364tmp_string))))->_count)=(0);
  44. /*]*/
  45. /*[IF*/
  46. if((_rfrt)!=((void*)(NULL))){
  47. X54c_type_for_external_in(_rfrt,oBC364tmp_string);
  48. }
  49. else{
  50. r7append((T7*)(oBC364tmp_string),((T0*)ms13_1776a));
  51. }
  52. /*FI]*/
  53. r7extend((T7*)(oBC364tmp_string),'\40');
  54. r7append((T7*)(oBC364tmp_string),a1);
  55. r7extend((T7*)(oBC364tmp_string),'\50');
  56. X54c_type_for_external_in(_rfct,oBC364tmp_string);
  57. r7extend((T7*)(oBC364tmp_string),'\40');
  58. r7extend((T7*)(oBC364tmp_string),'C');
  59. /*[IF*/
  60. if((_rfargs)!=((void*)(NULL))){
  61. r7extend((T7*)(oBC364tmp_string),'\54');
  62. r187external_prototype_in(((T187*)_rfargs),oBC364tmp_string);
  63. }
  64. /*FI]*/
  65. r7extend((T7*)(oBC364tmp_string),'\51');
  66. r25put_c_heading((T25*)(oBC12cpp),oBC364tmp_string);
  67. /*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
  68. /*]*/
  69. r364define_body_of(a2);
  70. }
  71.  
  72.  
  73. void r364fill_up(T364* C){
  74. T2 _i=0;
  75. T0* _rf=NULL;
  76. T0* _fn=NULL;
  77. T0* _fna=NULL;
  78. T0* _rta=NULL;
  79. T0* _t=NULL;
  80. /*[IF*/
  81. if((((T43*)(oBC12run_control))->_cecil_path/*20*/)!=((void*)(NULL))){
  82. {T326*n=malloc(sizeof(*n));
  83. *n=M326;
  84. r326with_capacity(n,4);
  85. C->_user_cecil_list=(T0*)n;
  86. }
  87. {T62*n=malloc(sizeof(*n));
  88. *n=M62;
  89. r62with_capacity(n,4);
  90. C->_user_cecil_name=(T0*)n;
  91. }
  92. C->_user_path_h=r34connect_to_cecil((T34*)(oBC12eiffel_parser));
  93. {T343*n=malloc(sizeof(*n));
  94. *n=M343;
  95. r343with_capacity(n,4);
  96. _rta=(T0*)n;
  97. }
  98. {T86*n=malloc(sizeof(*n));
  99. *n=M86;
  100. r86with_capacity(n,4);
  101. _fna=(T0*)n;
  102. }
  103. while (!(r34end_of_input((T34*)(oBC12eiffel_parser)))) {
  104. r62add_last((T62*)((C)->_user_cecil_name/*4*/),r34parse_c_name((T34*)(oBC12eiffel_parser)));
  105. X343add_last(_rta,r34parse_run_type((T34*)(oBC12eiffel_parser)));
  106. r86add_last(((T86*)_fna),r34parse_feature_name((T34*)(oBC12eiffel_parser)));
  107. }
  108. r34disconnect((T34*)(oBC12eiffel_parser));
  109. r28put_string((T28*)(oBC12echo),((T0*)ms364_17856));
  110. _i=0;
  111. while (!((_i)>(/*X343upper*/((T2)(((T343*)_rta))->_upper/*12*/)))) {
  112. _t=X54to_runnable(/*X343item*/((T0*)r343item(((T343*)_rta),_i)),r364type_any());
  113. _fn=/*(IRF4.6item*/((((T86*)_fna))->_storage/*0*/)[_i]/*)*/;
  114. _rf=r24get_feature((T24*)(X54run_class(_t)),_fn);
  115. /*[IF*/
  116. if((_rf)==((void*)(NULL))){
  117. r21add_position(X83start_position(_fn));
  118. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms364_103698);
  119. r21fatal_error((T21*)(oBC12eh),b1);
  120. }/*]*/
  121. }
  122. /*FI]*/
  123. X326add_last((C)->_user_cecil_list/*0*/,_rf);
  124. r331update_with(_rf);
  125. _i=(_i)+(1);
  126. }
  127. }
  128. /*FI]*/
  129. }
  130. /*No:CECIL_POOL.fz_void*/
  131.  
  132.  
  133. T0* r364type_any(void){
  134. if(fBC12type_any==0){
  135. fBC12type_any=1;
  136. {T259*n=malloc(sizeof(*n));
  137. *n=M259;
  138. r259make(n,NULL);
  139. oBC12type_any=(T0*)n;
  140. }
  141. }
  142. return oBC12type_any;}
  143. /*No:CECIL_POOL.fz_00*/
  144.  
  145.  
  146. void r364c_define_users(T364* C){
  147. /*[IF*/
  148. if(((C)->_user_cecil_list/*0*/)!=((void*)(NULL))){
  149. r28put_string((T28*)(oBC12echo),((T0*)ms364_13015));
  150. r25connect_cecil_out_h((T25*)(oBC12cpp),(C)->_user_path_h/*8*/);
  151. r364c_define_for_list((C)->_user_cecil_list/*0*/,(C)->_user_cecil_name/*4*/);
  152. /*[IRF3.5disconnect_cecil_out_h*/r45disconnect(((T45*)(((T25*)(oBC12cpp))->_out_h/*52*/)));
  153. /*]*/
  154. }
  155. /*FI]*/
  156. }
  157. /*No:CECIL_POOL.fz_12*/
  158. /*No:CECIL_POOL.user_cecil_name*/
  159. T0*oBC364tmp_string=NULL;
  160.  
  161.  
  162. void r364c_define_for_list(T0* a1,T0* a2){
  163. T2 _i=0;
  164. _i=/*X326upper*/((T2)(((T49*)a1))->_upper/*12*/);
  165. while (!((_i)<(0))) {
  166. r364c_define_for(/*(IRF4.6item*/((((T62*)a2))->_storage/*0*/)[_i]/*)*/,/*X326item*/((T0*)/*(IRF4.6item*/((((T49*)a1))->_storage/*4*/)[_i]/*)*/));
  167. _i=(_i)-(1);
  168. }
  169. }
  170. /*No:CECIL_POOL.user_path_h*/
  171. /*No:CECIL_POOL.user_cecil_list*/
  172.  
  173.  
  174. void r364define_body_of(T0* a1){
  175. T0* _running=NULL;
  176. T0* _cecil_arg_list=NULL;
  177. T0* _cecil_target=NULL;
  178. T0* _rfrt=NULL;
  179. T0* _rfct=NULL;
  180. _rfct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  181. _rfrt=X51result_type(a1);
  182. _running=((T24*)(X54run_class(_rfct)))->_running/*12*/;
  183. /*[IF*/
  184. if((_running)==((void*)(NULL))){
  185. r21add_type(_rfct,((T0*)ms364_63822));
  186. /*[IRF3.6append*/{T0* b1=((T0*)ms364_25494);
  187. r7append((T7*)(oBC21explanation),b1);
  188. }/*]*/
  189. /*[IRF3.6append*/{T0* b1=X54run_time_mark(_rfct);
  190. r7append((T7*)(oBC21explanation),b1);
  191. }/*]*/
  192. /*[IRF3.6append*/{T0* b1=X83to_key(/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  193. r7append((T7*)(oBC21explanation),b1);
  194. }/*]*/
  195. /*[IRF3.6extend*/{T3 b1='\56';
  196. r7extend((T7*)(oBC21explanation),b1);
  197. }/*]*/
  198. r21print_as_warning((T21*)(oBC12eh));
  199. }
  200. /*FI]*/
  201. /*[IF*/
  202. if(r43no_check((T43*)(oBC12run_control))){
  203. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms364_99028));
  204. /*]*/
  205. }
  206. /*FI]*/
  207. /*[IF*/
  208. if((_rfrt)!=((void*)(NULL))){
  209. /*[IRF3.3clear*/((((T7*)((T7*)(oBC364tmp_string))))->_count)=(0);
  210. /*]*/
  211. r7extend((T7*)(oBC364tmp_string),'\173');
  212. X54c_type_for_external_in(_rfrt,oBC364tmp_string);
  213. r7append((T7*)(oBC364tmp_string),((T0*)ms364_543));
  214. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),oBC364tmp_string);
  215. /*]*/
  216. }
  217. /*FI]*/
  218. {T366*n=malloc(sizeof(*n));
  219. *n=M366;
  220. /*[IRF3.3make*/((((T366*)(n)))->_run_feature)=(a1);
  221. /*]*/
  222. _cecil_target=(T0*)n;
  223. }
  224. /*[IF*/
  225. if((X51arg_count(a1))>(0)){
  226. {T365*n=malloc(sizeof(*n));
  227. *n=M365;
  228. r365run_feature(n,a1);
  229. _cecil_arg_list=(T0*)n;
  230. }
  231. }
  232. /*FI]*/
  233. /*[IF*/
  234. if(X54is_expanded(_rfct)){
  235. r25push_direct((T25*)(oBC12cpp),a1,_cecil_target,_cecil_arg_list);
  236. X51mapping_c(a1);
  237. r25pop((T25*)(oBC12cpp));
  238. }
  239. else{
  240. r25push_cpc((T25*)(oBC12cpp),a1,_running,_cecil_target,_cecil_arg_list);
  241. }
  242. /*FI]*/
  243. /*[IF*/
  244. if((_rfrt)!=((void*)(NULL))){
  245. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
  246. /*]*/
  247. }
  248. /*FI]*/
  249. /*[IF*/
  250. if(r43no_check((T43*)(oBC12run_control))){
  251. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms364_12978));
  252. /*]*/
  253. }
  254. /*FI]*/
  255. /*[IF*/
  256. if((_rfrt)!=((void*)(NULL))){
  257. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms364_8364));
  258. /*]*/
  259. }
  260. /*FI]*/
  261. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
  262. /*]*/
  263. }
  264. /*No:CECIL_POOL.fatal_error*/
  265.  
  266.  
  267. void r96make(T96* C,T0* a1,T0* a2,T0* a3){
  268. C->_clients=a1;
  269. C->_comment=a2;
  270. C->_list=a3;
  271. }
  272.  
  273.  
  274. void r96add_into(T96* C,T0* a1){
  275. T0* _f=NULL;
  276. T2 _i=0;
  277. /*[IF*/
  278. if(((C)->_list/*8*/)!=((void*)(NULL))){
  279. _i=0;
  280. while (!((_i)>(/*X99upper*/((T2)((T99*)((C)->_list/*8*/))->_upper/*12*/)))) {
  281. _f=/*X99item*/((T0*)r99item((T99*)((C)->_list/*8*/),_i));
  282. X93set_clients(_f,(C)->_clients/*0*/);
  283. X93add_into(_f,a1);
  284. _i=(_i)+(1);
  285. }
  286. }
  287. /*FI]*/
  288. }
  289. /*No:FEATURE_CLAUSE.comment*/
  290. /*No:FEATURE_CLAUSE.list*/
  291. /*No:FEATURE_CLAUSE.clients*/
  292. /*No:CREATION_CALL_4.fz_cast_t0_star*/
  293. /*No:CREATION_CALL_4.start_position*/
  294. /*No:CREATION_CALL_4.us_std_file_read*/
  295.  
  296.  
  297. void r254c2c_closing(T254* C,T0* a1){
  298. X56compile_to_c((C)->_writable/*8*/);
  299. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  300. T3 b1='\75';
  301. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  302. }/*]*/
  303. /*]*/
  304. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_1350));
  305. /*]*/
  306. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  307. T3 b1='n';
  308. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  309. }/*]*/
  310. /*]*/
  311. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
  312. /*]*/
  313. /*[IF*/
  314. if(r25call_invariant_start(a1)){
  315. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  316. T3 b1='n';
  317. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  318. }/*]*/
  319. /*]*/
  320. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  321. T3 b1='\51';
  322. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  323. }/*]*/
  324. /*]*/
  325. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  326. T3 b1='\73';
  327. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  328. }/*]*/
  329. /*]*/
  330. }
  331. /*FI]*/
  332. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  333. T3 b1='\175';
  334. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  335. }/*]*/
  336. /*]*/
  337. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  338. T3 b1='\n';
  339. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  340. }/*]*/
  341. /*]*/
  342. }
  343.  
  344.  
  345. T0* r254add_comment(T254* C,T0* a1){
  346. T0* R=NULL;
  347. /*[IF*/
  348. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  349. R=(T0*)C;
  350. }
  351. /*AF*/else{
  352. {T225*n=malloc(sizeof(*n));
  353. *n=M225;
  354. r225make(n,(T0*)C,a1);
  355. R=(T0*)n;
  356. }
  357. }
  358. /*FI]*/
  359. return R;
  360. }
  361.  
  362.  
  363. T6 r254use_current(T254* C){
  364. T6 R=0;
  365. /*[IF*/
  366. if((r254run_args(C))!=((void*)(NULL))){
  367. R=X149use_current(r254run_args(C));
  368. }
  369. /*FI]*/
  370. R=(R)||(X56use_current((C)->_writable/*8*/));
  371. return R;
  372. }
  373.  
  374.  
  375. T0* r254run_args(T254* C){
  376. T0* R=NULL;
  377. R=X162arguments((C)->_call/*20*/);
  378. return R;
  379. }
  380.  
  381.  
  382. T0* r254to_runnable(T254* C,T0* a1){
  383. T0* R=NULL;
  384. /*[IF*/
  385. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  386. r254check_writable(C,a1);
  387. r254check_explicit_type(C);
  388. r254check_created_type(C,(C)->_type/*24*/);
  389. r254check_creation_clause(C,(C)->_type/*24*/);
  390. R=(T0*)C;
  391. }
  392. else{
  393. {T254*n=malloc(sizeof(*n));
  394. *n=M254;
  395. r254make(n,(C)->_start_position/*4*/,(C)->_type/*24*/,(C)->_writable/*8*/,(C)->_call/*20*/);
  396. R=(T0*)n;
  397. }
  398. R=r254to_runnable(((T254*)R),a1);
  399. }
  400. /*FI]*/
  401. return R;
  402. }
  403. /*No:CREATION_CALL_4.fz_00*/
  404. /*No:CREATION_CALL_4.writable*/
  405.  
  406.  
  407. T6 r254is_pre_computable(T254* C){
  408. T6 R=0;
  409. T0* _rfctbcn=NULL;
  410. T0* _rfn=NULL;
  411. T0* _rfct=NULL;
  412. /*[IF*/
  413. if(X56is_result((C)->_writable/*8*/)){
  414. /*[IF*/
  415. if((r254run_args(C))==((void*)(NULL))){
  416. R=1;
  417. }
  418. else{
  419. R=X149is_pre_computable(r254run_args(C));
  420. }
  421. /*FI]*/
  422. /*[IF*/
  423. if(R){
  424. /*[IF*/
  425. if(X51is_pre_computable((C)->_run_feature/*16*/)){
  426. }
  427. else{
  428. _rfct=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  429. _rfctbcn=((T64*)(((T63*)(X54base_class(_rfct)))->_name/*24*/))->_to_string/*0*/;
  430. _rfn=X83to_string(/*X51name*/((T0*)((T324*)((C)->_run_feature/*16*/))->_name/*16*/));
  431. /*[IF*/
  432. if((((T0*)ms14_1696))==((void*)(_rfn))){
  433. /*[IF*/
  434. if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
  435. }
  436.  else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
  437. }
  438.  else if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
  439. }
  440.  else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
  441. }
  442.  else if((((T0*)ms14_16887))==((void*)(_rfctbcn))){
  443. }
  444.  else if((((T0*)ms14_19334))==((void*)(_rfctbcn))){
  445. }
  446. else{
  447. R=0;
  448. }
  449. /*FI]*/
  450. }
  451.  else if((((T0*)ms14_2675))==((void*)(_rfn))){
  452. /*[IF*/
  453. if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
  454. }
  455. else{
  456. R=0;
  457. }
  458. /*FI]*/
  459. }
  460.  else if((((T0*)ms14_27651))==((void*)(_rfn))){
  461. /*[IF*/
  462. if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
  463. }
  464.  else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
  465. }
  466.  else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
  467. }
  468. else{
  469. R=0;
  470. }
  471. /*FI]*/
  472. }
  473. else{
  474. R=0;
  475. }
  476. /*FI]*/
  477. }
  478. /*FI]*/
  479. }
  480. /*FI]*/
  481. }
  482. /*FI]*/
  483. return R;
  484. }
  485. /*No:CREATION_CALL_4.fz_03*/
  486. /*No:CREATION_CALL_4.collect_c_tmp*/
  487. /*No:CREATION_CALL_4.us_string*/
  488. /*No:CREATION_CALL_4.run_feature*/
  489. /*No:CREATION_CALL_4.us_array*/
  490.  
  491.  
  492. void r254c2c_expanded_initializer(T254* C,T0* a1){
  493. T0* _rf3=NULL;
  494. _rf3=X54expanded_initializer(a1);
  495. /*[IF*/
  496. if((_rf3)!=((void*)(NULL))){
  497. r25expanded_writable((T25*)(oBC12cpp),_rf3,(C)->_writable/*8*/);
  498. }
  499. /*FI]*/
  500. }
  501.  
  502.  
  503. void r254check_writable(T254* C,T0* a1){
  504. T0* _w=NULL;
  505. C->_current_type=a1;
  506. _w=X56to_runnable((C)->_writable/*8*/,a1);
  507. /*[IF*/
  508. if((_w)==((void*)(NULL))){
  509. r21add_position(X56start_position((C)->_writable/*8*/));
  510. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms249_64251);
  511. r21fatal_error((T21*)(oBC12eh),b1);
  512. }/*]*/
  513. }
  514. else{
  515. C->_writable=_w;
  516. }
  517. /*FI]*/
  518. }
  519.  
  520.  
  521. void r254check_creation_clause(T254* C,T0* a1){
  522. T0* _args=NULL;
  523. T0* _top=NULL;
  524. T0* _bottom=NULL;
  525. T0* _fn=NULL;
  526. T0* _ct=NULL;
  527. _fn=/*X162feature_name*/((T0*)((T165*)((C)->_call/*20*/))->_feature_name/*8*/);
  528. _top=r70base_class((T70*)(X83start_position(_fn)));
  529. _bottom=X54base_class(a1);
  530. /*[IF*/
  531. if(X54is_like_current(a1)){
  532. _fn=r63new_name_of(((T63*)_bottom),_top,_fn);
  533. /*[IF*/
  534. if((_fn)==((void*)(NULL))){
  535. _fn=/*X162feature_name*/((T0*)((T165*)((C)->_call/*20*/))->_feature_name/*8*/);
  536. r21add_position(X83start_position(_fn));
  537. /*[IRF3.6append*/{T0* b1=((T0*)ms13_7398);
  538. r7append((T7*)(oBC21explanation),b1);
  539. }/*]*/
  540. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  541. r7append((T7*)(oBC21explanation),b1);
  542. }/*]*/
  543. /*[IRF3.6append*/{T0* b1=((T0*)ms253_25652);
  544. r7append((T7*)(oBC21explanation),b1);
  545. }/*]*/
  546. /*[IRF3.6append*/{T0* b1=X54run_time_mark(a1);
  547. r7append((T7*)(oBC21explanation),b1);
  548. }/*]*/
  549. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_166);
  550. r21fatal_error((T21*)(oBC12eh),b1);
  551. }/*]*/
  552. }
  553. /*FI]*/
  554. }
  555. /*FI]*/
  556. C->_run_feature=r24get_feature((T24*)(X54run_class(a1)),_fn);
  557. /*[IF*/
  558. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  559. r254cp_not_found(C,_fn);
  560. }
  561. /*FI]*/
  562. /*[IF*/
  563. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  564. }
  565.  else if(!(X54has_creation(a1,_fn))){
  566. r21add_position(X83start_position(/*X162feature_name*/((T0*)((T165*)((C)->_call/*20*/))->_feature_name/*8*/)));
  567. r21add_position(X83start_position(_fn));
  568. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  569. r7append((T7*)(oBC21explanation),b1);
  570. }/*]*/
  571. /*[IRF3.6append*/{T0* b1=((T0*)ms253_45856);
  572. r7append((T7*)(oBC21explanation),b1);
  573. }/*]*/
  574. r21add_type(a1,((T0*)ms13_47));
  575. r21print_as_fatal_error((T21*)(oBC12eh));
  576. }
  577. /*FI]*/
  578. X51add_client((C)->_run_feature/*16*/,X54run_class((C)->_current_type/*12*/));
  579. /*[IF*/
  580. if((X51result_type((C)->_run_feature/*16*/))!=((void*)(NULL))){
  581. r21add_position(X51start_position((C)->_run_feature/*16*/));
  582. r21add_position(X83start_position(_fn));
  583. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms253_67122);
  584. r21fatal_error((T21*)(oBC12eh),b1);
  585. }/*]*/
  586. }
  587. /*FI]*/
  588. /*[IF*/
  589. if(((r254arg_count(C))==(0))&&((X51arguments((C)->_run_feature/*16*/))!=((void*)(NULL)))){
  590. r21add_position(X51start_position((C)->_run_feature/*16*/));
  591. r21add_position((C)->_start_position/*4*/);
  592. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms253_63744);
  593. r21fatal_error((T21*)(oBC12eh),b1);
  594. }/*]*/
  595. }
  596. /*FI]*/
  597. /*[IF*/
  598. if((r254arg_count(C))>(0)){
  599. _ct=/*X51current_type*/((T0*)((T324*)(r22top_rf((T22*)(oBC12small_eiffel))))->_current_type/*4*/);
  600. _args=X149to_runnable(X162arguments((C)->_call/*20*/),_ct);
  601. /*[IF*/
  602. if((_args)==((void*)(NULL))){
  603. r254error(X149start_position(X162arguments((C)->_call/*20*/)),((T0*)ms13_14714));
  604. }
  605. else{
  606. X149match_with(_args,(C)->_run_feature/*16*/,_ct);
  607. }
  608. /*FI]*/
  609. }
  610. /*FI]*/
  611. C->_call=X162make_runnable((C)->_call/*20*/,(C)->_writable/*8*/,_args,(C)->_run_feature/*16*/);
  612. }
  613. /*No:CREATION_CALL_4.fz_bad_arguments*/
  614. /*No:CREATION_CALL_4.fz_09*/
  615.  
  616.  
  617. T2 r254arg_count(T254* C){
  618. T2 R=0;
  619. /*[IF*/
  620. if(((C)->_call/*20*/)!=((void*)(NULL))){
  621. R=X162arg_count((C)->_call/*20*/);
  622. }
  623. /*FI]*/
  624. return R;
  625. }
  626. /*No:CREATION_CALL_4.fatal_error*/
  627. /*No:CREATION_CALL_4.us_with_capacity*/
  628. /*No:CREATION_CALL_4.us_blank*/
  629. /*No:CREATION_CALL_4.us_dictionary*/
  630. /*No:CREATION_CALL_4.us_fixed_array*/
  631. /*No:CREATION_CALL_4.type*/
  632.  
  633.  
  634. void r254c2c_clear_expanded(T254* C,T2 a1){
  635. X56compile_to_c((C)->_writable/*8*/);
  636. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  637. T3 b1='\75';
  638. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  639. }/*]*/
  640. /*]*/
  641. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  642. T3 b1='M';
  643. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  644. }/*]*/
  645. /*]*/
  646. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a1);
  647. /*]*/
  648. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
  649. /*]*/
  650. }
  651.  
  652.  
  653. void r254check_created_type(T254* C,T0* a1){
  654. T0* _rt=NULL;
  655. _rt=X54run_type(a1);
  656. /*[IF*/
  657. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  658. }
  659.  else if(((T63*)(X54base_class(_rt)))->_is_deferred/*16*/){
  660. r21add_type(_rt,((T0*)ms249_11858));
  661. r254warning((C)->_start_position/*4*/,((T0*)ms249_30996));
  662. }
  663. /*FI]*/
  664. /*[IF*/
  665. if(X54is_formal_generic(a1)){
  666. r21add_position((C)->_start_position/*4*/);
  667. /*[IRF3.6append*/{T0* b1=((T0*)ms249_77140);
  668. r7append((T7*)(oBC21explanation),b1);
  669. }/*]*/
  670. r21add_type(a1,((T0*)ms249_180));
  671. r21print_as_fatal_error((T21*)(oBC12eh));
  672. }
  673. /*FI]*/
  674. r24set_at_run_time((T24*)(X54run_class(_rt)));
  675. }
  676.  
  677.  
  678. void r254compile_to_c(T254* C){
  679. /*[IF*/
  680. if(X54is_reference((C)->_type/*24*/)){
  681. r254c2c_opening(C,(C)->_type/*24*/);
  682. r25push_new((T25*)(oBC12cpp),(C)->_run_feature/*16*/,r254run_args(C));
  683. X51mapping_c((C)->_run_feature/*16*/);
  684. r25pop((T25*)(oBC12cpp));
  685. r254c2c_closing(C,(C)->_type/*24*/);
  686. }
  687. else{
  688. r254c2c_clear_expanded(C,X54id((C)->_type/*24*/));
  689. r254c2c_expanded_initializer(C,(C)->_type/*24*/);
  690. }
  691. /*FI]*/
  692. }
  693.  
  694.  
  695. void r254warning(T0* a1,T0* a2){
  696. r21add_position(a1);
  697. r21warning((T21*)(oBC12eh),a2);
  698. }
  699. /*No:CREATION_CALL_4.current_type*/
  700. /*No:CREATION_CALL_4.us_make*/
  701. /*No:CREATION_CALL_4.us_std_file_write*/
  702. /*No:CREATION_CALL_4.fz_dot*/
  703.  
  704.  
  705. void r254c2c_opening(T254* C,T0* a1){
  706. T0* _rc=NULL;
  707. _rc=X54run_class(a1);
  708. r25se_trace_ins((T25*)(oBC12cpp),(C)->_start_position/*4*/);
  709. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  710. T3 b1='\173';
  711. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  712. }/*]*/
  713. /*]*/
  714. r330allocation((T330*)(oBC12gc_handler),_rc);
  715. r25expanded_attributes((T25*)(oBC12cpp),a1);
  716. }
  717. /*No:CREATION_CALL_4.call*/
  718.  
  719.  
  720. void r254error(T0* a1,T0* a2){
  721. r21add_position(a1);
  722. r21error((T21*)(oBC12eh),a2);
  723. }
  724. /*No:CREATION_CALL_4.end_mark_comment*/
  725.  
  726.  
  727. void r254make(T254* C,T0* a1,T0* a2,T0* a3,T0* a4){
  728. C->_start_position=a1;
  729. C->_type=a2;
  730. C->_writable=a3;
  731. C->_call=a4;
  732. }
  733.  
  734.  
  735. void r254check_explicit_type(T254* C){
  736. T0* _t=NULL;
  737. T0* _ct=NULL;
  738. _ct=/*X51current_type*/((T0*)((T324*)(r22top_rf((T22*)(oBC12small_eiffel))))->_current_type/*4*/);
  739. _t=X54to_runnable((C)->_type/*24*/,_ct);
  740. /*[IF*/
  741. if(((_t)==((void*)(NULL)))||(!(X54is_run_type(_t)))){
  742. r21add_position(X54start_position((C)->_type/*24*/));
  743. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms251_33726);
  744. r21fatal_error((T21*)(oBC12eh),b1);
  745. }/*]*/
  746. }
  747. else{
  748. C->_type=_t;
  749. }
  750. /*FI]*/
  751. /*[IF*/
  752. if(!(X54is_a((C)->_type/*24*/,X56result_type((C)->_writable/*8*/)))){
  753. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms251_34704);
  754. r21fatal_error((T21*)(oBC12eh),b1);
  755. }/*]*/
  756. }
  757. /*FI]*/
  758. }
  759.  
  760.  
  761. void r254cp_not_found(T254* C,T0* a1){
  762. r21add_position(X83start_position(/*X162feature_name*/((T0*)((T165*)((C)->_call/*20*/))->_feature_name/*8*/)));
  763. r21add_position(X83start_position(a1));
  764. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms253_53476);
  765. r21fatal_error((T21*)(oBC12eh),b1);
  766. }/*]*/
  767. }
  768.  
  769.  
  770. void r254afd_check(T254* C){
  771. /*[IF*/
  772. if((r254arg_count(C))>(0)){
  773. X149afd_check(r254run_args(C));
  774. }
  775. /*FI]*/
  776. }
  777.  
  778.